home *** CD-ROM | disk | FTP | other *** search
/ The Arsenal Files 8 / The Arsenal Files Collection #8 (Arsenal Computer) (1996).ISO / pcboard / vrs501.zip / VRS-M3.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1996-10-08  |  5KB  |  261 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 3.2O (Encryption type I) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Integer  INTEGER001
  20.     Integer  INTEGER002
  21.     Integer  INTEGER003
  22.     Integer  INTEGER004
  23.     String   STRING001
  24.     String   STRING002
  25.     String   STRING003
  26.     String   TSTRING004(10)
  27.     String   STRING005
  28.     String   STRING006
  29.     String   STRING007
  30.     String   STRING008
  31.     String   STRING009
  32.     String   STRING010
  33.     String   STRING011
  34.     String   STRING012
  35.  
  36. ;------------------------------------------------------------------------------
  37.  
  38.     DCloseAll
  39.     Goto LABEL001
  40.     End
  41.     If (0 == 0) STRING001 = "NO"
  42.     If (0 == 1) STRING001 = "YES"
  43.  
  44.     EndFunc
  45.  
  46.     :LABEL001
  47.     STRING007 = String(PcbNode())
  48.     If (PcbNode() == 0) STRING007 = "A"
  49.     STRING008 = GetEnv(STRING007 + "RECNO")
  50.     STRING008 = ToInteger(STRING008)
  51.     STRING005 = "@X01≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡@X0F"
  52.     :LABEL002
  53.     DCloseAll
  54.     DOpen 0, PPEPath() + "USER.DBF", 0
  55.     DGo 0, STRING008
  56.     INTEGER001 = DRecNo(0)
  57.     DGet 0, "HANDLE", STRING009
  58.     DGet 0, "FILE_NUM", STRING010
  59.     Cls
  60.     PrintLn "@X10┌─────────────────────────────────────────────────────────────────────────────@X19┐@X0F"
  61.     PrintLn "@X10│@X1F                    Virtual Reality Soldier - @X1AInsta-Mail @POS:79@@X19│@X0F"
  62.     PrintLn "@X10└@X19─────────────────────────────────────────────────────────────────────────────@X19┘@X0F"
  63.     PrintLn "@X10┌─────────────────────────────────────────────────────────────────────────────@X19┐@X0F"
  64.     PrintLn "@X10│                       @X1A(@X1DS@X1A)@X12can Mail      @X1A(@X1DK@X1A)@X12ill your mail file        @POS:79@@X19│@X0F"
  65.     PrintLn "@X10│                       @X1A(@X1DW@X1A)@X12rite Mail     @X1A(@X1DQ@X1A)@X12uit to Top Level          @POS:79@@X19│@X0F"
  66.     PrintLn "@X10└@X19─────────────────────────────────────────────────────────────────────────────@X19┘@X0F"
  67.     Newlines 2
  68.     InputStr "@X02 What Will it be soldier @X0A> ", STRING006, 11, 1, "SWKQ", 0 + 8
  69.     If (STRING006 == "") Goto LABEL006
  70.     If (STRING006 == "Q") Goto LABEL006
  71.     If (STRING006 == "S") Goto LABEL005
  72.     If (STRING006 == "K") Then
  73.         If (Exist(PPEPath() + String(STRING010) + ".MSG")) Then
  74.             Delete PPEPath() + String(STRING010) + ".MSG"
  75.             Backup 80
  76.             ClrEol
  77.             PrintLn "@X8CMessage data erased!@X0F"
  78.             Call PPEPath() + "VRS-M19.PPE"
  79.             Goto LABEL002
  80.         Endif
  81.         Goto LABEL002
  82.     Endif
  83.     If (STRING006 == "W") Then
  84.         Backup 80
  85.         ClrEol
  86.         InputStr "@X0CNAME of soldier to send mail to @X0E:@X0F _", STRING011, 11, 25, Mask_Ascii(), 0 + 8
  87.         If (STRING011 == "") Goto LABEL002
  88.     Endif
  89.     If (Upper(Trim(STRING011, " ")) == Upper(Trim(STRING009, " "))) Then
  90.         Backup 80
  91.         ClrEol
  92.         PrintLn "@X0CSorry Soldier, no need to send yourself mail!@X0F"
  93.         Call PPEPath() + "VRS-M19.PPE"
  94.         Goto LABEL002
  95.     Endif
  96.     DnCreate 0, PPEPath() + String(PcbNode()) + "-MH.NDX", "HANDLE"
  97.     DTop 0
  98.     DSeek 0, STRING011
  99.     If (DChkStat(0) > 0) Goto LABEL003
  100.     INTEGER002 = DRecNo(0)
  101.     DnCloseAll 0
  102.     Delete PPEPath() + String(PcbNode()) + "-MH.NDX"
  103.     DGet 0, "HANDLE", STRING011
  104.     DGet 0, "FILE_NUM", STRING012
  105.     Goto LABEL004
  106.     :LABEL003
  107.     Backup 80
  108.     ClrEol
  109.     Print "@X0CSorry, But that Soldiers NAME was not found, please try again!@X0F"
  110.     Call PPEPath() + "VRS-M19.PPE"
  111.     Goto LABEL002
  112.     :LABEL004
  113.     INTEGER004 = 1
  114.     Cls
  115.     PrintLn 
  116.     PrintLn "            @X0BType either @X0A(@X0DQ@X0A)@X0Buit / @X0A(@X0DS@X0A)@X0Bave on a blank LINE to exit "
  117.     PrintLn "@X01┌────────────────────────────────────────────────────────────────────────────┐@X0F"
  118.     For INTEGER003 = 1 To 10
  119.         If (INTEGER003 <= 9) Print "@X0E ", INTEGER003, "@X0A)@X0B "
  120.         If (INTEGER003 == 10) Print "@X0E", INTEGER003, "@X0A)@X0B "
  121.         InputStr "_", TSTRING004(INTEGER003), 15, 73, Mask_Ascii(), 512 + 8192 + 64
  122.         If (Upper(TSTRING004(INTEGER003)) == "Q") Goto LABEL002
  123.         If (Upper(TSTRING004(INTEGER003)) == "S") Break
  124.         Inc INTEGER004
  125.     Next
  126.     Backup 80
  127.     ClrEol
  128.     PrintLn "@X01└────────────────────────────────────────────────────────────────────────────┘@X0F"
  129.     InputStr "@X0BDo you want to make this Anonymous @X0A(@X0DY@X0A/@X0DN@X0A) _", STRING002, 10, 1, "YYNN", 0 + 8
  130.     If (STRING002 == "Y") Then
  131.         STRING003 = "Anonymous"
  132.     Else
  133.         STRING003 = STRING009
  134.     Endif
  135.     Backup 80
  136.     ClrEol
  137.     InputStr "@X0BDo you want to Save this message @X0A(@X0DY@X0A/@X0DN@X0A) _", STRING002, 10, 1, "YYNN", 0 + 8
  138.     If (STRING002 == "N") Then
  139.         For INTEGER003 = 1 To 10
  140.             TSTRING004(INTEGER003) = ""
  141.         Next
  142.         Delete PPEPath() + String(PcbNode()) + "-MH.NDX"
  143.         Goto LABEL002
  144.     Endif
  145.     INTEGER004 = INTEGER004 - 1
  146.     FAppend 1, PPEPath() + String(STRING012) + ".MSG", 2, 0
  147.     FPutLn 1, "@X0E" + String(Date()) + " @X0A " + "FROM @X0E:@X0D " + STRING003
  148.     For INTEGER003 = 1 To INTEGER004
  149.         FPutLn 1, " @X0B " + TSTRING004(INTEGER003)
  150.     Next
  151.     FPutLn 1, STRING005
  152.     FClose 1
  153.     For INTEGER003 = 1 To 10
  154.         TSTRING004(INTEGER003) = ""
  155.     Next
  156.     Delete PPEPath() + String(PcbNode()) + "-MH.NDX"
  157.     Backup 80
  158.     ClrEol
  159.     PrintLn "@X8CMAIL SENT!@X0F"
  160.     Call PPEPath() + "VRS-M19.PPE"
  161.     Goto LABEL002
  162.     :LABEL005
  163.     If (Exist(PPEPath() + String(STRING010) + ".MSG")) Then
  164.         Cls
  165.         DispFile PPEPath() + String(STRING010) + ".MSG", 0
  166.         Call PPEPath() + "VRS-M19.PPE"
  167.         Goto LABEL002
  168.     Endif
  169.     Backup 80
  170.     ClrEol
  171.     PrintLn "                             @X8C No mail to read!@X0F"
  172.     Newlines 2
  173.     Call PPEPath() + "VRS-M19.PPE"
  174.     Goto LABEL002
  175.     :LABEL006
  176.     DCloseAll
  177.     Delete PPEPath() + String(PcbNode()) + "-MH.NDX"
  178.     End
  179.  
  180. ;------------------------------------------------------------------------------
  181. ;
  182. ; Usage report (before postprocessing)
  183. ;
  184. ; ■ Statements used :
  185. ;
  186. ;    2       End
  187. ;    3       Cls
  188. ;    8       ClrEol
  189. ;    33      Goto 
  190. ;    23      Let 
  191. ;    3       Print 
  192. ;    15      PrintLn 
  193. ;    23      If 
  194. ;    1       DispFile 
  195. ;    1       FAppend 
  196. ;    1       FClose 
  197. ;    3       FPutLn 
  198. ;    5       Delete 
  199. ;    5       InputStr 
  200. ;    1       Inc 
  201. ;    2       Newlines 
  202. ;    6       Call 
  203. ;    8       Backup 
  204. ;    1       EndFunc
  205. ;    1       DOpen 
  206. ;    3       DCloseAll
  207. ;    1       DnCreate 
  208. ;    1       DnCloseAll 
  209. ;    1       DTop 
  210. ;    1       DGo 
  211. ;    1       DSeek 
  212. ;    4       DGet 
  213. ;
  214. ;
  215. ; ■ Functions used :
  216. ;
  217. ;    43      +
  218. ;    1       -
  219. ;    15      ==
  220. ;    4       <
  221. ;    5       <=
  222. ;    1       >
  223. ;    8       >=
  224. ;    11      !
  225. ;    8       &&
  226. ;    4       ||
  227. ;    4       Upper()
  228. ;    2       Trim()
  229. ;    1       Date()
  230. ;    12      String()
  231. ;    2       Mask_Ascii()
  232. ;    17      PPEPath()
  233. ;    7       PcbNode()
  234. ;    1       GetEnv()
  235. ;    2       Exist()
  236. ;    1       ToInteger()
  237. ;    2       DRecNo()
  238. ;    1       DChkStat()
  239. ;
  240. ;------------------------------------------------------------------------------
  241. ;
  242. ; Analysis flags : C
  243. ;
  244. ; C - Call child PPE ■ 3
  245. ;     This is usually normal, but may be a tricky way to launch some
  246. ;     sysop-only commands.
  247. ;     ■ Search for : CALL
  248. ;
  249. ;------------------------------------------------------------------------------
  250. ;
  251. ; Postprocessing report
  252. ;
  253. ;    4       For/Next
  254. ;    0       While/EndWhile
  255. ;    7       If/Then or If/Then/Else
  256. ;    0       Select Case
  257. ;
  258. ;------------------------------------------------------------------------------
  259. ;                 AEGiS Corp - Break the routines, code against the machines!
  260. ;------------------------------------------------------------------------------
  261.